﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace hotelasynchroniczne.Models
{
    public class ObiektRepository: iObiekt
    {
        public void DodajObiekt(int id, int typ,int wlascicielId, string miasto, string ulica)
        {
            using (DataClasses1DataContext dt = new DataClasses1DataContext())
            {
                LOKALIZACJE l = new LOKALIZACJE
                {
                    ID_LOK = id,
                    MIASTO = miasto,
                    ULICA = ulica
                };
                OBIEKTY a = new OBIEKTY
                {
                    ID_OB = 1,//temp
                    LOKALIZACJA=id, 
                    RANKING=0,
                    USR=wlascicielId
                };
                
                dt.LOKALIZACJEs.InsertOnSubmit(l);
                dt.OBIEKTies.InsertOnSubmit(a);
                dt.SubmitChanges();
            }
        }
        public void UsunObiekt(int id)
        {
            using (DataClasses1DataContext dt = new DataClasses1DataContext())
            {
                var obiekt = dt.OBIEKTies.Single(a => a.ID_OB == id);
                int lokid = obiekt.LOKALIZACJA;
                var lokalizacja = dt.LOKALIZACJEs.Single(b => b.ID_LOK == lokid);
                dt.OBIEKTies.DeleteOnSubmit(obiekt);
                dt.LOKALIZACJEs.DeleteOnSubmit(lokalizacja);
                dt.SubmitChanges();
            }
        }
        public ObiektModel PobierzObiekt(int id)
        {
            using (DataClasses1DataContext dt = new DataClasses1DataContext())
            {
                try
                {
                    var obiekt = dt.OBIEKTies.Single(a => a.ID_OB==id);
                    var lokalizacja = dt.LOKALIZACJEs.Single(b => b.ID_LOK == obiekt.LOKALIZACJA);
                    return new ObiektModel(obiekt.ID_OB,(int)obiekt.USR,1/*temp*/,lokalizacja.MIASTO,lokalizacja.ULICA);
                }
                catch
                {
                    return null;
                }

            }
        }
        public List<ObiektModel> PobierzWszystkie() //WIP
        {
            using (DataClasses1DataContext dt = new DataClasses1DataContext())
            {
                var obiekty=from a in dt.OBIEKTies
                            select new ObiektModel
                            {

                            };
                return obiekty.ToList();
            }
            
        }
        public void DodajPokoj(int id,PokojModel p)
        {
            using (DataClasses1DataContext dt = new DataClasses1DataContext())
            {
                POKOJE a = new POKOJE
                {
                    ID_POK=p.id,
                    //CENA=(double)p.cena, zmienic jakos w bazie decimal na double
                    ILOSC_OSOB=p.iloscOsob,
                    LOZKA_DOUBLE=p.lozkaDouble,
                    LOZKA_SINGLE=p.lozkaSingle,
                    OBIEKT=id
                };

                dt.POKOJEs.InsertOnSubmit(a);
                dt.SubmitChanges();
            }
        }
        public PokojModel PobierzPokoj(int id)
        {
            using (DataClasses1DataContext dt = new DataClasses1DataContext())
            {
                var pokoj = dt.POKOJEs.Single(a => a.ID_POK == id);
                return new PokojModel
                {
                    id=pokoj.ID_POK,
                    //cena=pokoj.CENA, zmienic jakos w bazie decimal na double
                    iloscOsob=(int)pokoj.ILOSC_OSOB,
                    lozkaDouble=(int)pokoj.LOZKA_DOUBLE,
                    lozkaSingle=(int)pokoj.LOZKA_SINGLE,
                    rezerwacja=new List<DateTime>(),//temp

                };
            }
        }

    }
}